//
// Created by lidongwei on 2023/6/21.
//
/////////////////////推理//////////////////////
#ifndef INFER_INFER_H
#define INFER_INFER_H
// 编译用的头文件
#include <NvInfer.h>
// 推理用的运行时头文件
#include <NvInferRuntime.h>
// cuda include
#include <cuda_runtime.h>
// system include
#include <stdio.h>
#include <math.h>

#include <iostream>
#include <vector>
//opencv
#include <opencv2/opencv.hpp>

#include "cuda_def.h"
typedef unsigned char uint8_t;


namespace trt_infer {
    class Infer {
    public:
        static std::vector<unsigned char> load_file(const std::string &file);//声明读取engine文件的函数
        static nvinfer1::IExecutionContext * create_engine(std::vector<unsigned char> engine_model,int batch);//模型反序列化
        static std::vector<float> infer(nvinfer1::IExecutionContext * executionContext, std::vector<float> input_data,int batch,int channel,int input_width,int input_height,int output_size);//使用tensorrt推理
    };

}


#endif //INFER_INFER_H
